Android 用のアプリリンクを設定する
ディープリンクは、URI を使用してアプリを起動するためのメカニズムです。 この URI にはスキーム、ホスト、パスが含まれます。 アプリを開き、特定の画面を表示します。
あアプリリンクを使用するディープリンクの一種です。http
またhttps
Android デバイス専用です。
アプリリンクを設定するには、Web ドメインを所有している必要があります。 それ以外の場合は、使用を検討してくださいFirebaseホスティングまたGitHub ページ一時的な解決策として。
1. Flutter アプリケーションをカスタマイズする
受信 URL を処理できる Flutter アプリを作成します。
この例では、go_routerルーティングを処理するパッケージ。
Flutter チームは、go_router
パッケージ。
複雑なルーティング シナリオを処理するためのシンプルな API を提供します。
-
新しいアプリケーションを作成するには、次のように入力します。
flutter create <app-name>
:$ flutter create deeplink_cookbook
-
含める
go_router
アプリ内のパッケージ、 依存関係を追加しますgo_router
プロジェクトに:追加するには、
go_router
パッケージを依存関係として、 走るflutter pub add
:$ flutter pub add go_router
-
ルーティングを処理するには、 を作成する
GoRouter
内のオブジェクトmain.dart
ファイル:import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; void main() => runApp(MaterialApp.router(routerConfig: router)); /// This handles '/' and '/details'. final router = GoRouter( routes: [ GoRoute( path: '/', builder: (_, __) => Scaffold( appBar: AppBar(title: const Text('Home Screen')), ), routes: [ GoRoute( path: 'details', builder: (_, __) => Scaffold( appBar: AppBar(title: const Text('Details Screen')), ), ), ], ), ], );
2. AndroidManifest.xmlを変更する
- VS Code または Android Studio で Flutter プロジェクトを開きます。
- 案内する
android/app/src/main/AndroidManifest.xml
ファイル。 -
次のメタデータ タグとインテント フィルターを
<activity>
タグ付き.MainActivity
。交換
example.com
独自の Web ドメインを使用します。<meta-data android:name="flutter_deeplinking_enabled" android:value="true" /> <intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:host="example.com" /> <data android:scheme="https" /> </intent-filter>
3.assetlinks.jsonファイルのホスティング
を主催するassetlinks.json
Webサーバーを使用してファイルを作成する
あなたが所有するドメインを使用して。このファイルは、
代わりに開く Android アプリケーションのモバイル ブラウザ
ブラウザの。ファイルを作成するには、
で作成した Flutter アプリのパッケージ名を取得します。
前のステップと sha256 フィンガープリント
APK のビルドに使用する署名キー。
パッケージ名
パッケージ名を見つけますAndroidManifest.xml
、
のpackage
下のプロパティ<manifest>
鬼ごっこ。
パッケージ名は通常、次の形式です。com.example.*
。
sha256 指紋
プロセスは、APK の署名方法によって異なる場合があります。
Google Play アプリ署名の使用
sha256 フィンガープリントは play から直接見つけることができます 開発者コンソール。 Play コンソールでアプリを開きます。 下「リリース」>「セットアップ」>「アプリの整合性」>「アプリ署名」タブ:
ローカルキーストアの使用
キーをローカルに保存している場合は、 次のコマンドを使用して sha256 を生成できます。
keytool -list -v -keystore <path-to-keystore>
アセットリンク.json
ホストされたファイルは次のようになります。
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.deeplink_cookbook",
"sha256_cert_fingerprints":
["FF:2A:CF:7B:DD:CC:F1:03:3E:E8:B2:27:7C:A2:E3:3C:DE:13:DB:AC:8E:EB:3A:B9:72:A1:0E:26:8A:F5:EC:AF"]
}
}]
-
をセットする
package_name
値を Android アプリケーション ID に設定します。 -
sha256_cert_fingerprints を取得した値に設定します 前のステップから。
-
次のような URL でファイルをホストします。
<webdomain>/.well-known/assetlinks.json
-
ブラウザがこのファイルにアクセスできることを確認してください。
テスト
実際のデバイスまたはエミュレータを使用してアプリのリンクをテストできます。
ただし、最初に実行したことを確認してくださいflutter run
少なくとも一度は
デバイス。これにより、Flutter アプリケーションが確実にインストールされます。
テストするそれだけアプリのセットアップでは、adb コマンドを使用します。
adb shell 'am start -a android.intent.action.VIEW \
-c android.intent.category.BROWSABLE \
-d "http://<web-domain>/details"' \
<package name>
テストする両方Web とアプリのセットアップでは、リンクをクリックする必要があります Web ブラウザまたは別のアプリから直接。 1 つの方法は、Google ドキュメントを作成し、リンクを追加して、それをタップすることです。
すべてが正しく設定されている場合、Flutter アプリケーションは 起動して詳細画面が表示されます。
付録
ソースコード:ディープリンク_クックブック